import { RouteRecordRaw } from "vue-router"

/**
 * 路由meta对象参数说明
 * meta: {
 *      title:          菜单栏及 tagsView 栏、菜单搜索名称（国际化）
 *      isLink：        是否超链接菜单，开启外链条件，`1、isLink: 链接地址不为空`
 *      isHide：        是否隐藏此路由
 *      isKeepAlive：   是否缓存组件状态
 *      isAffix：       是否固定在 tagsView 栏上
 *      isIframe：      是否内嵌窗口，开启条件，`1、isIframe:true 2、isLink：链接地址不为空`
 *      roles：         当前路由权限标识，取角色管理。控制路由显示、隐藏。超级管理员：admin 普通角色：common
 *      icon：          菜单、tagsView 图标，阿里：加 `iconfont xxx`，fontawesome：加 `fa xxx`
 * }
 */


/**
 * 定义动态路由
 * 前端添加路由，请在顶级节点的 `children 数组` 里添加
 * @description 未开启 isRequestRoutes 为 true 时使用（前端控制路由），开启时第一个顶级 children 的路由将被替换成接口请求回来的路由数据
 * @description 各字段请查看 `/@/views/system/menu/component/addMenu.vue 下的 ruleForm`
 * @returns 返回路由菜单数据
 */
export const dynamicRoutes: Array<RouteRecordRaw> = [
    {
        path: '/',
        name: '/',
        component: () => import('@/layout/index.vue'),
        redirect: '/home',
        meta: {
            isKeepAlive: true
        },
        children: [
            {
                path: '/home',
                name: 'home',
                component: () => import('@/views/home/index.vue'),
                meta: {
                    title: 'message.router.home',
                    isLink: '',
                    isHide: false,
                    isKeepAlive: true,
                    isAffix: true,
                    isIframe: false,
                    roles: ['admin', 'common'],
                    icon: 'iconfont icon-shouye',
                }
            },
            {
                path: '/personal',
                name: 'personals',
                component: () => import('@/views/system/personal/index.vue'),
                meta: {
                    title: '个人中心',
                    isLink: '',
                    isHide: true,
                    isKeepAlive: true,
                    isAffix: false,
                    isIframe: false,
                    roles: ['admin'],
                    icon: 'iconfont icon-diannao',
                },
            },
        ]
    },
    {
        path: '/2',
        name: '/2',
        component: () => import('@/layout/index.vue'),
        redirect: '/home',
        meta: {
            isKeepAlive: true
        },
        children: [
            {
                path: '/home2',
                name: 'home',
                component: () => import('@/views/home/index.vue'),
                meta: {
                    title: 'message.router.home',
                    isLink: '',
                    isHide: false,
                    isKeepAlive: true,
                    isAffix: true,
                    isIframe: false,
                    roles: ['admin', 'common'],
                    icon: 'iconfont icon-shouye',
                }
            }
        ]
    }
]


/**
 * 定义静态路由（默认路由）
 * 此路由不要动，前端添加路由的话，请在 `dynamicRoutes 数组` 中添加
 * @description 前端控制直接改 dynamicRoutes 中的路由，后端控制不需要修改，请求接口路由数据时，会覆盖 dynamicRoutes 第一个顶级 children 的内容（全屏，不包含 layout 中的路由出口）
 * @returns 返回路由菜单数据
 */
// export const staticRoutes: Array<RouteRecordRaw> = [
//     {
//         path: '/login',
//         name: 'login',
//         component: () => import('@/views/login/index.vue'),
//         meta: {
//             title: '登录'
//         }
//     },
//     /**
//      * 提示：写在这里的为全屏界面，不建议写在这里
//      * 请写在 `dynamicRoutes` 路由数组中
//      */
//     {
//         path: '/visualizingDemo1',
//         name: 'visualizingDemo1',
//         component: () => import('@/views/visualizing/demo1.vue'),
//         meta: {
//             title: 'message.router.visualizingLinkDemo1',
//         },
//     },
//     {
//         path: '/visualizingDemo2',
//         name: 'visualizingDemo2',
//         component: () => import('@/views/visualizing/demo2.vue'),
//         meta: {
//             title: 'message.router.visualizingLinkDemo2',
//         },
//     },
//     {
//         path: '/:pathMatch(.*)*',
//         component: () => import('@/layout/routerView/parent.vue'),
//         meta: {
//             title: '加载中',
//         },
//     }
// ]



/**
 * 定义404、401界面
 * @link 参考：https://next.router.vuejs.org/zh/guide/essentials/history-mode.html#netlify
 */
export const notFoundAndNoPower = [
    {
        path: '/:pathMatch(.*)*',
        name: 'notFound',
        component: () => import('@/views/error/404.vue'),
        meta: {
            title: 'message.staticRoutes.notFound',
            isHide: true,
        }
    },
    {
        path: '/401',
        name: 'noPower',
        component: () => import('@/views/error/401.vue'),
        meta: {
            title: 'message.staticRoutes.noPower',
            isHide: true,
        },
    },
]


// export const demoRoutes: Array<RouteRecordRaw> = [
//     {
//         path: '/demo',
//         name: 'demo',
//         component: () => import('@/layout/routerView/parent.vue'),
//         redirect: '/demo/system/menu',
//         meta: {
//             title: '案例演示',
//             isLink: '',
//             isHide: false,
//             isKeepAlive: true,
//             isAffix: false,
//             isIframe: false,
//             roles: ['admin'],
//             icon: 'iconfont icon-diannao',
//         },
//         children: [
//             {
//                 path: '/demo/system',
//                 name: 'system',
//                 component: () => import('@/layout/routerView/parent.vue'),
//                 redirect: '/system/menu',
//                 meta: {
//                     title: 'message.router.system',
//                     isLink: '',
//                     isHide: false,
//                     isKeepAlive: true,
//                     isAffix: false,
//                     isIframe: false,
//                     roles: ['admin'],
//                     icon: 'iconfont icon-xitongshezhi',
//                 },
//                 children: [
//                     {
//                         path: '/demo/system/menu',
//                         name: 'systemMenu',
//                         component: () => import('/@/views/system/menu/index.vue'),
//                         meta: {
//                             title: 'message.router.systemMenu',
//                             isLink: '',
//                             isHide: false,
//                             isKeepAlive: true,
//                             isAffix: false,
//                             isIframe: false,
//                             roles: ['admin'],
//                             icon: 'iconfont icon-caidan',
//                         },
//                     },
//                     {
//                         path: '/demo/system/role',
//                         name: 'systemRole',
//                         component: () => import('/@/views/system/role/index.vue'),
//                         meta: {
//                             title: 'message.router.systemRole',
//                             isLink: '',
//                             isHide: false,
//                             isKeepAlive: true,
//                             isAffix: false,
//                             isIframe: false,
//                             roles: ['admin'],
//                             icon: 'ele-ColdDrink',
//                         },
//                     },
//                     {
//                         path: '/demo/system/user',
//                         name: 'systemUser',
//                         component: () => import('/@/views/system/user/index.vue'),
//                         meta: {
//                             title: 'message.router.systemUser',
//                             isLink: '',
//                             isHide: false,
//                             isKeepAlive: true,
//                             isAffix: false,
//                             isIframe: false,
//                             roles: ['admin'],
//                             icon: 'iconfont icon-icon-',
//                         },
//                     },
//                     {
//                         path: '/demo/system/dept',
//                         name: 'systemDept',
//                         component: () => import('/@/views/system/dept/index.vue'),
//                         meta: {
//                             title: 'message.router.systemDept',
//                             isLink: '',
//                             isHide: false,
//                             isKeepAlive: true,
//                             isAffix: false,
//                             isIframe: false,
//                             roles: ['admin'],
//                             icon: 'ele-OfficeBuilding',
//                         },
//                     },
//                 ]
//             }
//         ]
//     }
// ]
